/**
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved. <br/>
 * 描述: TODO <br/>
 *
 * @author framework generator
 * @date 2022年02月15日
 * @version 2.0
 */
package com.icinfo.cloud.provider.punish.ucase.casemain.mapper;

import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CaseAppendixQueryDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CaseAttachmentInfoQueryDto;
import com.icinfo.cloud.provider.punish.ucase.casemain.model.CaseAppendixRecord;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseAttachmentInfoVo;
import com.icinfo.framework.mybatis.mapper.common.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 描述: 案件附件表-trj case_appendix_record 对应的Mapper接口.<br>
 *
 * @author framework generator
 * @date 2022年02月15日
 */
public interface CaseAppendixRecordMapper extends Mapper<CaseAppendixRecord> {

    /**
     * 【V1.0.0】描述：获取案件附件列表
     *
     * @param queryDto {@link CaseAttachmentInfoQueryDto}
     * @return {@link List < CaseAttachmentInfoVo >} 案件附件列表
     * @author xiangyuyu
     * @date 2022-02-27 09:49
     */
    List<CaseAttachmentInfoVo> selectCaseAttachmentList(CaseAttachmentInfoQueryDto queryDto);
    /**
     *根据案件id与文书目录编码删除关联附件
     * @author liyafeng
     * @date 2022/3/30
      * @param map
     * @return
     */
    void deleteByCaseIdAndCatalogCode(Map<String, Object> map);

    /**
     * 【V1.3.0】描述：根据环节编码撤回附件数据
     * @author tianrunjia
     * @date 2022-06-27
     * @return
     */
    void updateRecallCaseAppendixRecordByCaseLinkCode(@Param("caseId") String caseId, @Param("caseLinkCode") String caseLinkCode);
    /**
     * 【V1.3.0】描述：删除补录附件数据
     * @author wangfawei
     * @date 2022-12-09
     * @return
     */
    int deleteAllByCaseId(Map<String, Object> map);

    /**
     * 附件管理查询附件排序列表
     * @param caseAppendixQueryDto
     * @return: java.util.List<com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseAttachmentInfoVo>
     * @author sunjiefei
     * @date 2023-04-06
     */
    List<CaseAttachmentInfoVo> selectCaseAttachmentSortList(CaseAppendixQueryDto caseAppendixQueryDto);
    /**
     * 删除不存在id的附件信息
     * @param paramsMap
     * @author sunjiefei
     * @date 2023-04-12
     */
    void deleteByCaseIdAndCaseStageCodeNotInIds(Map<String, Object> paramsMap);
}
